package com.lan.seriousphysics.screens.experimentos;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Slider;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.lan.seriousphysics.SeriousPhysicsMain;
import com.lan.seriousphysics.screens.AbstractScreen;
import com.lan.seriousphysics.screens.experimentMenus.OndasScreen;

public class Sonidos extends AbstractScreen {

	private Slider slideFrecuencia;
	private Slider slideAmplitud;
	
	private static final float MIN = 1f;
	private static final float MAX = 5f;
	
	private static final float MIN_VOL = 0f;
	private static final float MAX_VOL = 1f;
	private static final float velocidadSonido= 343;
	
	Sound s;
	Label lfrecuencia, lamplitud, longitudOnda;
	long sonido;
	
	Label lDesc;
	
	float frecuencia, londa;
	
	public Sonidos(SeriousPhysicsMain game) {
		super(game);
		// TODO Auto-generated constructor stub
	}
	public void show() {
		super.show();
		getBatch();
		
		previousScreen = new OndasScreen(game,"ONDAS");
		
		setBackground("fondo.png");


		s = Gdx.audio.newSound(Gdx.files.internal("264.ogg"));
		sonido = s.play();
		s.setLooping(sonido, true);
		
		Table table = super.getTable();
		
		lDesc = new Label(res.getString("COLORESD"), getSkin(), "menus");
		table.add(lDesc).spaceBottom(50);
		table.row();

		float d = 0.1f;
		float d2 = 0.01f;
		slideFrecuencia = new Slider(MIN, MAX, d, false, getSkin());
		slideAmplitud = new Slider(MIN_VOL, MAX_VOL, d2, false, getSkin());

		frecuencia = Math.round(slideFrecuencia.getValue()*264);
		londa = velocidadSonido/frecuencia;
		table.add(slideFrecuencia).spaceBottom(30).expandX().minWidth(300);
		table.row();
		lfrecuencia = new Label(res.getString("FRECUENCIA")+ " " + Float.toString(frecuencia) + " Hz", getSkin());
		table.add(lfrecuencia).spaceBottom(40);
		table.row();
		table.add(slideAmplitud).spaceBottom(30).expandX().minWidth(300);	
		table.row();
		lamplitud = new Label(res.getString("AMPLITUD"),getSkin());
		table.add(lamplitud).spaceBottom(40);
		table.row();
		longitudOnda = new Label(res.getString("LONGITUD_ONDA")+ " " + Float.toString(londa) + " m",getSkin());
		table.add(longitudOnda);
		table.row();

		
		slideAmplitud.setValue(0.5f);
		slideFrecuencia.setValue(2.5f);

	}
	
	public void render(float delta) {
		super.render(delta);
		frecuencia = Math.round(slideFrecuencia.getValue()*264);
		londa = velocidadSonido/frecuencia;
		lfrecuencia.setText(res.getString("FRECUENCIA")+ " " + Float.toString(frecuencia) + " Hz");
		longitudOnda.setText(res.getString("LONGITUD_ONDA")+ " " + Float.toString(londa) + " m");
			s.setPitch(sonido, slideFrecuencia.getValue());
			s.setVolume(sonido, slideAmplitud.getValue());

	}
}
